package TestConfiguracio;

import static org.junit.Assert.*;

import java.util.List;
import java.io.File;

import org.junit.Test;

import Utilitats.LlegirFitxer;
import Configuracio.Config;
import Configuracio.Traductor;

public class TraductorTest {

	
	@Test(expected = Exception.class)	
	public void TestMesIncorrecto() throws Exception {

		Config.crearConfiguraciones();
		
		//assertEquals(11, Config.getMes());

	}
	@Test
	public void TestMesCorrecto() throws Exception {

		Config.crearConfiguraciones();
		
		assertEquals(11, Config.getMes());

	}
	
	
	@Test
	public void TestAnyo() throws Exception {
		
		Config.crearConfiguraciones();
		
		assertEquals(2008, Config.getAny());
	}
	
	
	@Test
	public void TestIdiomaEntrada() throws Exception {
		
		
		List<String> listaTemp = LlegirFitxer.llegirFitxer(new File("Literals/config.txt"));
		
		String idiomaEntrada =	listaTemp.get(1).substring(0, listaTemp.get(1).indexOf(" "));
		
		assertEquals("CAT", idiomaEntrada);
		
	}
	
	@Test
	public void TestIdiomaSalida() throws Exception{
		
		List<String> listaTemp = LlegirFitxer.llegirFitxer(new File("Literals/config.txt"));
		
		String idiomaSalida = listaTemp.get(1).substring(listaTemp.get(1).indexOf(" ")+1);
		
		assertEquals("ENG", idiomaSalida);
	}
	

	@Test
	public void testGetAgenda() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Agenda", test.getAgenda());

	}

	@Test
	public void testGetDiesSetmanaInt() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Jueves", test.getDiesSetmana(3));

	}

	
	@Test
	public void testGetDiesLIntCorrecto() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("C", test.getDiesL(2));

	}

	@Test(expected = Exception.class)
	public void testGetDiesLIntIncorrecto() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("C", test.getDiesL(8));

	}

	@Test
	public void testGetDiesLString() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals(0, test.getDiesL("L"));

	}

	@Test
	public void testGetMesosInt() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Mayo", test.getMesos(4));
	}

	@Test
	public void testGetMesosString() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals(0, test.getMesos("Enero"));

	}

	@Test
	public void testGetDadesAgendaInt() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Mes", test.getDadesAgenda(1));
	}

	@Test
	public void testGetDadesAgendaString() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals(1, test.getDadesAgenda("Mes"));
	}

	@Test
	public void testGetGenerat() throws Exception {

		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Generado por", test.getGenerat());
	}

	@Test
	public void testGetTancat() throws Exception {
		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Cerrado", test.getTancat());
	}

	@Test
	public void testGetError() throws Exception {
		Traductor test = new Traductor(new File("internacional.ESP"));

		assertEquals("Error", test.getError());
	}
}
